package com.enation.app.javashop.core.promotion.tool.plugin;

import com.enation.app.javashop.core.base.message.OrderStatusChangeMsg;
import com.enation.app.javashop.core.promotion.tool.model.dto.PromotionDTO;
import com.enation.app.javashop.core.trade.cart.model.dos.CartDO;
import com.enation.app.javashop.core.trade.order.model.vo.OrderSkuVO;

import java.util.List;

/**
 * 促销插件接口
 * @author mengyuanming
 * @version v2.0
 * @since v7.0.0
 * @date 2017年8月18日下午8:52:10
 *
 */
public interface PromotionEvent {

	/**
	 * 计算购物车价格
	 * @param cart
	 */
	void onPriceProcess(CartDO cart);

	/**
	 * 某些活动独有库存的处理
	 * 例如：
	 * 1、限时抢购每个商品有独立的售空数量，已销售数量。
	 * @param orderMessage
	 * @param promotionDTOList
	 */
	void reduceQuantity(OrderStatusChangeMsg orderMessage, List<PromotionDTO> promotionDTOList);

}
